package com.twod.feralvillage;

import android.content.Context;
import android.content.pm.PackageManager;
import android.view.MotionEvent;

public class MultiTouchFilter extends SingleTouchFilter {
        private boolean mCheckedForMultitouch = false;
        private boolean mSupportsMultitouch = false;
       
    @Override
    public void updateTouch(MotionEvent event) {
                ContextParameters params = sSystemRegistry.contextParameters;
        final int pointerCount = event.getPointerCount();
        for (int x = 0; x < pointerCount; x++) {
                final int action = event.getAction();
                final int actualEvent = action & MotionEvent.ACTION_MASK;
                final int id = event.getPointerId(x);
                if (actualEvent == MotionEvent.ACTION_POINTER_UP ||
                                actualEvent == MotionEvent.ACTION_UP ||
                                actualEvent == MotionEvent.ACTION_CANCEL) {
                        BaseObject.sSystemRegistry.inputSystem.touchUp(id,
                                        event.getX(x) * (1.0f / params.viewScaleX),
                                        event.getY(x) * (1.0f / params.viewScaleY));
                } else {
                        BaseObject.sSystemRegistry.inputSystem.touchDown(id,
                                        event.getX(x) * (1.0f / params.viewScaleX),
                                        event.getY(x) * (1.0f / params.viewScaleY));
                }
        }
    }
   
    @Override
    public boolean supportsMultitouch(Context context) {
        if (!mCheckedForMultitouch) {
                PackageManager packageManager = context.getPackageManager();
                mSupportsMultitouch = packageManager.hasSystemFeature("android.hardware.touchscreen.multitouch");
                mCheckedForMultitouch = true;
        }
       
        return mSupportsMultitouch;
    }
}

